package com.lzy.product.apis;

import com.github.pagehelper.PageInfo;
import com.lzy.framework.component.PageBean;
import com.lzy.framework.core.orm.db.Pager;
import com.lzy.product.dtos.agent.AgentOrderInfoDto;
import com.lzy.product.dtos.agent.AgentOrderSalesRecordDto;

import java.math.BigDecimal;
import java.util.List;

public interface AgentOrderInfoServiceApi {

    /**
     * 分页查询订单数据 pager为null时不分页
     *
     * @param pager
     * @param agentOrderInfoDto
     * @return
     */
    PageBean query(Pager pager, AgentOrderInfoDto agentOrderInfoDto);

    /**
     * 查看订单信息
     *
     * @param orderId
     * @return
     */
    AgentOrderInfoDto queryOrderById(Long orderId);

    /**
     * 新增
     *
     * @param agentOrderInfoDto
     * @return
     */
    Long insert(AgentOrderInfoDto agentOrderInfoDto);

    /**
     * @param orderId
     * @return
     */
    AgentOrderInfoDto findByOrderId(Long orderId);
    /**
     * 更新
     *
     * @param dto
     * @return
     */
    Boolean updateAgentOrder(AgentOrderInfoDto dto);

    /**
     * 查询用户销售总额
     *
     * @param userId
     * @return
     */
    BigDecimal queryTotalPriceByUserId(Long userId);


    /**
     * 分页查询按月统计代理商销售记录
     *
     * @param pager
     * @param agentOrderInfoDto
     * @return
     */
    PageInfo<AgentOrderSalesRecordDto> statisticalSalesRecord (Pager pager, AgentOrderInfoDto agentOrderInfoDto);

    /**
     * 分页查询按年月條件统计代理商销售记录
     *
     */
    List<AgentOrderSalesRecordDto> statisticalSalesRecordByCondition(String idList,Integer type,String time);

    /**
     * 根据订单的Id查询相应合同
     */
    AgentOrderInfoDto queryContractByOrderId(Long orderId);
}
